home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / asmutil / ps85a12.zip / EXAMPLE.ASM < prev    next >
Assembly Source File  |  1986-11-09  |  2KB  |  50 lines

  1. ; To become familiar with the segment feature you
  2. ; should assemble this file with and without the
  3. ; single object module swicth enabled.
  4. ;
  5. ;   a85  -o example         ;three object module files
  6.                             ;     code.seg
  7.                             ;     memory.seg
  8.                             ;     rom2.seg
  9. ;
  10. ;   a85  example            ;one object module file example.obj
  11.  
  12.  
  13.  
  14.          jmp loop
  15.          .org  h'20         ;start assembly at location 20 hex.
  16.          .segment .memory   ;declare a new segmemt for ram memory
  17.                             ;allocation
  18.          .memory            ;select segment .memory as active(locaton counter)
  19.                             ;for the .code segment(created by the assembler) is
  20.                             ;saved for when we switch back.
  21.          .org  h'8000       ;assume ram space starts at address h'8000
  22. v1:      .rs 2               ;reserve storage for a program variable
  23. array:   .rs 100*2           ;reserve storage for an array of 100 words
  24.          .eject             ;lets start on a fresh page of paper.
  25.          .code              ;switch back to code segment
  26.                             ; origin is where we left off.
  27. loop:    mvi a,h'22
  28.          lxi sp,h'2000
  29.          sphl
  30.          .equ cr,13         ;equated identifiers are constant.
  31.          .equ tab,9
  32.          .set temp,23       ;set identifiers may be re-set.
  33.          .set temp,24
  34.          .set temp,25
  35.          .db  1,2,3,4,5,'p'
  36.          .db  6,7,"this is a test\r\n\0"
  37.          .dw  1,h'1234
  38.          .drw 1,h'1234
  39.          mvi b,loop2 >> 8   ;isolate high byte of address
  40.          mvi b,loop2 & h'ff ;isolate low half of address
  41.          .page              ;start on a new 256 byte boundary.
  42. loop2:   jmp loop
  43.          .segment .rom2
  44.          .rom2
  45.          .org h'4000
  46.          .db  "this is possibly a second rom programmed seperately."
  47.          .code
  48.          .end loop          ;end of assembly, specifying start address.
  49.  
  50.